package com.juzi.arraylist;

import java.util.ArrayList;

public class ArrayTest4 {
    public static void main(String[] args) {
        //目标：学习遍历并删除元素的正确方案
        //1、创建一个ArrayList集合存储一个班级学生 的成绩
        ArrayList<Integer> scores = new ArrayList<>();
        scores.add(98);
        scores.add(77);
        scores.add(66);
        scores.add(89);
        scores.add(79);
        scores.add(50);
        scores.add(100);
        System.out.println(scores);

        //2、把低于80分的成绩从集合中去掉

//        有猫饼的代码
//        for (int i = 0; i < scores.size(); i++) {
//            int score = scores.get(i);
//            if (score < 80){
//                //分数小于80
//                scores.remove(i);
//            }
//        }
//        System.out.println(scores);
//        [98,66,89,50,100]



        //解决方案之一
        /*
        for (int i = 0; i < scores.size(); i++) {
            int score = scores.get(i);
            if (score < 80){
                //分数小于80
                scores.remove(i);
                i--;//删除成功后，后退一步，保证回到原位置，不会出现跳索引的现象
            }
        }
        System.out.println(scores);
         */


        //解决方案之二
        //从后面倒着遍历在删除就可以
        for (int i =scores.size()-1 ; i >= 0; i--) {
            int score = scores.get(i);
            if (score < 80){
                //分数小于80
                scores.remove(i);
            }
        }
        System.out.println(scores);


    }
}
//1、 从集合中遍历元素，并筛选出元素删除它，应该怎么解决？
//从集合后面遍历然后删除，可以避免漏掉元素。